package com.uzai.console.service.pdd;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.console.dto.locallive.tlbtoken.TlbTokenIdDto;
import com.uzai.console.dto.pdd.pddtoken.PddTokenCallBackDto;
import com.uzai.console.dto.pdd.pddtoken.PddTokenIdDto;
import com.uzai.console.dto.pdd.pddtoken.PddTokenInfoDto;
import com.uzai.console.dto.pdd.pddtoken.PddTokenQuery;
import com.uzai.console.entity.PddToken;
import com.uzai.console.vo.locallive.tlbtoken.TenMillionSubsidiesVo;
import com.uzai.console.vo.pdd.pddtoken.PddTokenAuthUrlVo;
import com.uzai.console.vo.pdd.pddtoken.PddTokenInfoVo;
import com.uzai.console.vo.pdd.pddtoken.PddTokenRecordVo;

import java.util.List;

/**
 * @author liuqi
 * @date 2021年08月13日 11:33
 */
public interface PddTokenService {

   /**
     * 查询多多进宝联盟列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pddTokenQuery
     * @return null
     */
    Page<PddTokenInfoVo> findPddTokenList(PddTokenQuery pddTokenQuery);

   /**
     * 添加多多进宝授权
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param merId
     * @return null
     */
    PddTokenAuthUrlVo addPddToken(Long merId);

   /**
     * 查询多多进宝联盟详情
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pddTokenIdDto
     * @return null
     */
    PddTokenInfoVo findPddTokenInfo(PddTokenIdDto pddTokenIdDto);

   /**
     * 修改多多进宝联盟PID
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pddTokenUpdatePidDto
     * @return null
     */
    void updatePid(PddTokenInfoDto pddTokenUpdatePidDto);

   /**
     * 保存（兼容修改和添加）
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pddToken
     * @return null
     */
    void save(PddToken pddToken);

   /**
     * 删除
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pddTokenIdDto
     * @return null
     */
   void deletePddToken(PddTokenIdDto pddTokenIdDto);


    /**
     * 授权
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pddTokenCallBackDto
     * @return null
     */
    void pddOauth(PddTokenCallBackDto pddTokenCallBackDto);


    List<PddToken> listPddToken(Long merId, List<Long> leagueAccountIds);

    PddToken getPddToken(Long merId, Long leagueAccountId);

    /**
     * 备案
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pddTokenIdDto
     * @return null
     */
    PddTokenRecordVo recordPddToken(PddTokenIdDto pddTokenIdDto);

    /**
     * 千亿补贴
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param pddTokenIdDto
     * @return null
     */
    TenMillionSubsidiesVo tenMillionSubsidies(PddTokenIdDto pddTokenIdDto);
}
